<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  
  <meta name="description" content="权限管理1.RBAC模型RBAC，英文全称Role-Based Access Control，基于角色的权限访问控制，它将who、what、how进行了关联，解释了谁（who）对什么（what）做了怎么样操作（how）的问题。
RBAC包含了四个子模型，分别是RBAC0，RBAC1，RBAC2和RB" />
  

  
  
  
  
  
  
  <title>权限管理 | 南辞的技术博客</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="权限管理1.RBAC模型RBAC，英文全称Role-Based Access Control，基于角色的权限访问控制，它将who、what、how进行了关联，解释了谁（who）对什么（what）做了怎么样操作（how）的问题。 RBAC包含了四个子模型，分别是RBAC0，RBAC1，RBAC2和RBAC3，它们的核心思想都是相同的，只是在某些地方有差异。  RBAC0   RBAC1   一个角色">
<meta property="og:type" content="article">
<meta property="og:title" content="权限管理">
<meta property="og:url" content="https://yanlidoushikeke.gitee.io/myhexo/2021/03/11/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/index.html">
<meta property="og:site_name" content="南辞的技术博客">
<meta property="og:description" content="权限管理1.RBAC模型RBAC，英文全称Role-Based Access Control，基于角色的权限访问控制，它将who、what、how进行了关联，解释了谁（who）对什么（what）做了怎么样操作（how）的问题。 RBAC包含了四个子模型，分别是RBAC0，RBAC1，RBAC2和RBAC3，它们的核心思想都是相同的，只是在某些地方有差异。  RBAC0   RBAC1   一个角色">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://pic1.zhimg.com/80/v2-fccc8c8beab3e11d9f812c408d347ab4_720w.jpg">
<meta property="og:image" content="https://pic3.zhimg.com/80/v2-2d974dd151fd0c15760aae9cdc1cee0e_720w.jpg">
<meta property="og:image" content="https://pic4.zhimg.com/80/v2-869b9251135f19bb1efaa0fccc4dde7b_720w.jpg">
<meta property="article:published_time" content="2021-03-11T07:55:30.000Z">
<meta property="article:modified_time" content="2021-03-11T09:03:41.758Z">
<meta property="article:author" content="南辞">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://pic1.zhimg.com/80/v2-fccc8c8beab3e11d9f812c408d347ab4_720w.jpg">
  
  
    <link rel="icon" href="/tefuir/css/images/favicon.ico">
  
  
<link rel="stylesheet" href="/tefuir/css/style.css">

  

  
  <!-- baidu webmaster push -->
  <script src='//push.zhanzhang.baidu.com/push.js'></script>
<meta name="generator" content="Hexo 5.2.0"><link rel="alternate" href="/tefuir/atom.xml" title="南辞的技术博客" type="application/atom+xml">
</head>
<body class="home blog custom-background custom-font-enabled single-author">
  <div id="page" class="hfeed site">
      <header id="masthead" class="site-header" role="banner">
    <hgroup>
      <h1 class="site-title">
        <a href="/tefuir/" title="南辞的技术博客" rel="home">南辞的技术博客</a>
      </h1>
      
        <h2 class="site-description hitokoto"></h2>
        <script type="text/javascript" src="https://v1.hitokoto.cn/?encode=js"></script>
      
    </hgroup>

    <nav id="site-navigation" class="main-navigation" role="navigation">
            <button class="menu-toggle">菜单</button>
            <a class="assistive-text" href="/#content" title="跳至内容">跳至内容</a><!--TODO-->
            <div class="menu-main-container">
                <ul id="menu-main" class="nav-menu">
                
                    <li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/tefuir/">Home</a></li>
                
                    <li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/tefuir/archives">Archives</a></li>
                
                </ul>
            </div>
    </nav>
</header>

      <div id="main" class="wrapper">
        <div id="primary" class="site-content"><div id="content" role="main"><article id="post-权限管理" class="post-权限管理 post type-post status-publish format-standard hentry">
    <!---->

      <header class="entry-header">
        
        
  
    <h1 class="entry-title article-title">
      权限管理
    </h1>
  

        
        <div class="comments-link">
            
            <a href="javascript:void(0);" data-url="https://yanlidoushikeke.gitee.io/myhexo/2021/03/11/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/" data-id="ckm4nu57y00005cu08i4m3jym" class="leave-reply bdsharebuttonbox" data-cmd="more">Share</a>
        </div><!-- .comments-link -->
      </header><!-- .entry-header -->

    <div class="entry-content">
      
        <h2 id="权限管理"><a href="#权限管理" class="headerlink" title="权限管理"></a>权限管理</h2><h2 id="1-RBAC模型"><a href="#1-RBAC模型" class="headerlink" title="1.RBAC模型"></a>1.RBAC模型</h2><p>RBAC，英文全称Role-Based Access Control，基于角色的权限访问控制，它将who、what、how进行了关联，<strong>解释了谁（who）对什么（what）做了怎么样操作（how）</strong>的问题。</p>
<p>RBAC包含了四个子模型，分别是RBAC0，RBAC1，RBAC2和RBAC3，它们的核心思想都是相同的，只是在某些地方有差异。</p>
<ul>
<li><p><strong>RBAC0</strong></p>
<p><img src="https://pic1.zhimg.com/80/v2-fccc8c8beab3e11d9f812c408d347ab4_720w.jpg" alt="img"></p>
</li>
<li><h5 id="RBAC1"><a href="#RBAC1" class="headerlink" title="RBAC1"></a>RBAC1</h5></li>
</ul>
<ul>
<li>一个角色可以拥有多个等级，**角色和等级之间是一对多的关系；</li>
<li><strong>一个角色下的不同等级之间，具有相同的权限，但又会有不同的权限，但他们都只会拥有该角色下的权限。</strong></li>
</ul>
<p>通过角色分级，可以实现更加精细化的权限分配，还是以上面的那个例子来说明：</p>
<p>王小明是公司的开发部门的经理，具有公司开发人员的的管理权。而王小亮是副经理，只具有部分管理权。此时我们就可以设置一个比经理低一等级的副经理的角色，并赋予该角色部分经理的角色即可。当有一天王小明离职了，王小亮被提拔成经理，那么可以直接将王小明的角色继承给王小亮即可。</p>
<p><img src="https://pic3.zhimg.com/80/v2-2d974dd151fd0c15760aae9cdc1cee0e_720w.jpg" alt="img">RBAC1增</p>
<ul>
<li><strong>RBAC2</strong></li>
</ul>
<p>RBAC2是在RBAC0的基础上增加了对角色和权限的一些限制。</p>
<ul>
<li><strong>角色互斥限制。</strong>限制当系统中有多个角色时，用户只能同时拥有它们中的一个角色。或者当用户拥有多个角色时，只能同时激活使用其中的一个角色。</li>
<li><strong>角色基数限制。</strong>限制用户只能同时拥有或激活的一定数量的角色，或者限制角色只能被赋予一定数量的权限。</li>
<li><strong>先决条件限制。</strong>当用户想要拥有一个角色时，必须现拥有另一个角色才可以，或者当角色需要拥有一个权限时，必须先拥有另一个权限。</li>
</ul>
<p>还是以上面的案例来说明：</p>
<p>小明拥有公司的开发部门经理的角色，此时就不会再让他拥有公司财务部门的经理角色，否则他自己既可以审批报销单据，又能进行报销金额的发放，容易出现贪污现象。这就是角色互斥限制。</p>
<p>比如王小明拥有开发部门经理的角色，同时又具有测试部门经理的角色，公司规定一个人最多能担任两个岗位，因此他无法再成为产品部门的经理。这就是角色基数限制。</p>
<p>又比如王小明想要升级为公司的CEO，那么按照公司的规定，他必须先成为公司的技术总监之后，才能进一步升职为CEO。这就是先决条件限制。</p>
<ul>
<li><strong>RBAC3</strong></li>
</ul>
<p>RBAC3其实是RBAC1和RBAC2的合集，也就是它同时具有RBAC1和RBAC2这两个模型的所有特点。我们用一张图来描述一下他们之间的关系：</p>
<p><img src="https://pic4.zhimg.com/80/v2-869b9251135f19bb1efaa0fccc4dde7b_720w.jpg" alt="img"></p>
<p>在RBAC0是基础，在此之上，分别延伸出的RBAC1和RBAC2，它们具有RBAC0的特点，同时又各自拥有自己的特点。而RBAC3则同时拥有RBAC1和RBAC2的所有特点。</p>
<h3 id="2-ACL模型"><a href="#2-ACL模型" class="headerlink" title="2.ACL模型"></a>2.ACL模型</h3><p>针对用户，只要有一个新用户就会授权一次.</p>
<p>比如王小明的公司去了一位新同事，这时公司会给这位新同事分配任务与权限，当这位新同事因为某些原因离职时，公司会收回相应的权限。</p>
<p>与ACL 对比  RBAC不用给用户单个分配权限，只用指向对应的角色就会有对应的权限，而且分配权限和收回权限都很方便。</p>

      
    </div><!-- .entry-content -->

    <footer class="entry-meta">
    <a href="/tefuir/2021/03/11/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/">
    <time datetime="2021-03-11T07:55:30.000Z" class="entry-date">
        2021-03-11
    </time>
</a>
    
    
    </footer>
</article>


    
<nav class="nav-single">
    <h3 class="assistive-text">文章导航</h3>
    
        <span class="nav-previous"><a href="/tefuir/2021/03/15/%E4%BA%8C%E8%BF%9B%E5%88%B6/" rel="prev"><span class="meta-nav">←</span> 二进制</a></span>
    
    
        <span class="nav-next"><a href="/tefuir/2021/03/10/Celery/" rel="next">Celery <span class="meta-nav">→</span></a></span>
    
</nav><!-- .nav-single -->







</div></div>
        <div id="secondary" class="widget-area" role="complementary">
  
    <aside id="search" class="widget widget_search"><form role="search" method="get" accept-charset="utf-8" id="searchform" class="searchform" action="//google.com/search">
    <div>
        <input type="text" value="" name="s" id="s" />
        <input type="submit" id="searchsubmit" value="搜索" />
    </div>
</form></aside>
  
    
  
    
  
    
  <aside class="widget">
    <h3 class="widget-title">Recents</h3>
    <div class="widget-content">
      <ul>
        
          <li>
            <a href="/tefuir/2021/04/26/python%E5%9F%BA%E7%A1%80%E7%90%86%E8%AE%BA%E5%AE%9D%E5%85%B8/">python基础理论宝典</a>
          </li>
        
          <li>
            <a href="/tefuir/2021/04/23/python3-Flask%E7%BB%93%E5%90%88Socket-io%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0%E5%9C%A8%E7%BA%BF%E5%AE%A2%E6%9C%8D%E7%B3%BB%E7%BB%9F/">python3+Flask结合Socket.io简单实现在线客服系统</a>
          </li>
        
          <li>
            <a href="/tefuir/2021/04/23/win10%E7%B3%BB%E7%BB%9F%E4%B8%8B%E5%88%A9%E7%94%A8docker%E9%83%A8%E7%BD%B2gunicorn-Flask%E6%89%93%E9%80%A0%E7%8B%AC%E7%AB%8B%E9%95%9C%E5%83%8F/">win10系统下利用docker部署gunicorn+Flask打造独立镜像</a>
          </li>
        
          <li>
            <a href="/tefuir/2021/04/23/win10%E7%B3%BB%E7%BB%9F%E4%B8%8B%E5%9F%BA%E4%BA%8Edocker%E9%85%8D%E7%BD%AEelasticsearch%E9%85%8D%E5%90%88python3%E8%BF%9B%E8%A1%8C%E5%85%A8%E6%96%87%E6%A3%80%E7%B4%A2/">win10系统下基于docker配置elasticsearch配合python3进行全文检索</a>
          </li>
        
          <li>
            <a href="/tefuir/2021/04/23/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98/">服务器问题</a>
          </li>
        
      </ul>
    </div>
  </aside>

  
    
  
    
  
</div>
      </div>
      <footer id="colophon" role="contentinfo">
    <p>&copy; 2021 南辞
    All rights reserved.</p>
    <p>Powered by <a href="http://hexo.io/" target="_blank">Hexo</a></p>
</footer>
    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"1","bdMiniList":false,"bdPic":"","bdStyle":"2","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='/js/share.js'];</script>

<script src="/js/jquery-3.3.1.min.js"></script>


  
<link rel="stylesheet" href="/tefuir/fancybox/jquery.fancybox.css">

  
<script src="/tefuir/fancybox/jquery.fancybox.pack.js"></script>




<script src="/tefuir/js/script.js"></script>


<script src="/js/navigation.js"></script>

<div id="bg"></div>

  </div>
</body>
</html>